package com.bdsc.blogs.mirror.config;

import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @author 马凯林
 */
@Configuration
public class DruidConfiguration {

  @Bean
  public ServletRegistrationBean druidStatViewServle() {
    ServletRegistrationBean servletRegistrationBean =
        new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
    // 白名单
    servletRegistrationBean.addInitParameter("allow", "127.0.0.1");
    // 黑名单
    servletRegistrationBean.addInitParameter("deny", "192.168.1.73");
    // 登录名
    servletRegistrationBean.addInitParameter("loginUsername", "admin");
    // 密码
    servletRegistrationBean.addInitParameter("loginPassword", "123456");
    // 是否能够重置数据
    servletRegistrationBean.addInitParameter("resetEnable", "false");
    return servletRegistrationBean;
  }

  public FilterRegistrationBean druidStatFilter() {
    FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
    // 添加过滤规则
    filterRegistrationBean.addUrlPatterns("/*");
    // 添加需要忽略的格式信息
    filterRegistrationBean.addInitParameter(
        "exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.icon,/druid/*");
    return filterRegistrationBean;
  }
}
